Willow

nike 오픈소스라니!

오늘은 nike에서 내 놓은 swift 용 logger 라이브러리가 순위에 올라왔습니다. IT 기업과 비 IT기업의 경계는 점점 없어져 가는 것 같습니다. 스타벅스의 하워드 슐츠가 “우리는 IT기업이다” 라고 이야기 하고 다니는 것도 예삿일은 아닐겁니다.

2016/06/마지막날 Editor’s choice

Nike-Inc/Willow
_Willow is a powerful, yet lightweight logging library written in Swift._github.com


다음과 같은 feature들을 가지고 있습니다.

  • Default Log Levels
  • Custom Log Levels
  • Simple Logging Functions using Closures
  • Configurable Synchronous or Asynchronous Execution
  • Thread-Safe Logging Output (No Log Mangling)
  • Custom Formatters through Dependency Injection per Log Level
  • Customizable Color Formatting for Console Output
  • Custom Writers through Dependency Injection per Log Level
  • Supports Multiple Simultaneous Writers
  • Shared Loggers Between Frameworks
  • Shared Locks or Queues Between Multiple Loggers
  • Comprehensive Unit Test Coverage
  • Complete Documentation

설치하기

실제로 라이브러리를 사용하는 기준으로 설명을 드리면, 먼저 XCODE로 프로젝트를 생성합니다. Carthage를 사용해서 설치하는 것을 기준으로 설명하겠습니다.

그냥 아무 프로젝트나 생성하면 됩니다.

이후 생성된 폴더에 들어가서 Cartfile을 만들고

$carthage update

를 치면 아래 링크asciinema에 보이는 형태 대로 설치가 됩니다.

untitled
_Recorded by keen_asciinema.org

빌드가 되고나면

framework파일이 빌드가 되어 있습니다.

xcode 에 드래그앤 드롭 한 뒤에 사용하면 됩니다.

AppDelegate 파일을 열어 didFinishLaunchingWithOptions 에 다음과 같이 작성하면

**let log = Logger()**

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: \[NSObject: AnyObject\]?) -\> Bool {

// Override point for customization after application launch.

let splitViewController = self.window!.rootViewController as! UISplitViewController

let navigationController = splitViewController.viewControllers\[splitViewController.viewControllers.count-1\] as! UINavigationController

navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()

splitViewController.delegate = self

**log.info { "My app has started" }**

return true

}

아래와 같이 log를 땋 하고 찍어줍니다!

Embed!

혹시 image not found가 뜨면 Embeded Binaries에 추가하시면 에러는 해결이 됩니다.

By Keen Dev on June 30, 2016.

Exported from Medium on May 31, 2017.